A processor may reduce wasted time resulting from stalling and idling, and increase the proportion of execution time, by supporting and implementing both horizontal multithreading and vertical multithreading. Vertical multithreading may permit overlapping or “hiding” of cache miss wait times. In vertical multithreading, multiple hardware threads share the same processor pipeline. A hardware thread is typically a process, a lightweight process, a native thread, or the like in an operating system that supports multithreading. Horizontal multithreading may increase parallelism within the processor circuit structure. To further increase system parallelism in some processors, multiple processor cores are formed in a single die.